Data Transfer, Over Session or Connection, and Between Computing Device and One or More Servers for Transmitting Data to a Third Party Computing Device

ABSTRACT

A method, apparatus, computer-readable medium, and/or system may comprise a computing device comprising a processor and memory storing computer-executable instructions that, when executed by the processor, cause the computing device to generate a first secure session connection between a computing device and a first server associated with a first routing network. The computing device may receive, from the first server and via the first secure session connection, a plurality of pieces of data associated with the first routing network. The computing device may generate a second secure session connection between the computing device and a second server associated with a second routing network. The computing device may receive, from the second server and via the second secure session connection, a plurality of pieces of data associated with the second routing network. The computing device may categorize each of the plurality of pieces of data associated with the first routing network and the plurality of pieces of data associated with the second routing network. The computing device may generate, based on the categorizing, one or more tags for each of the plurality of pieces of data associated with the first routing network and the plurality of pieces of data associated with the second routing network. The computing device may generate, based on the one or more tags, a plurality of blocks of data. Each block of data of the plurality of blocks of data may comprise at least a portion of the plurality of pieces of data associated with the first routing network and the plurality of pieces of data associated with the second routing network. The computing device may store, at a storage device and with one or more corresponding tags, the plurality of blocks of data. The computing device may receive a request to share data with a third party computing device. In response to receiving the request to share data with the third party computing device, the computing device may transmit, to the third party computing device and based on the one or more corresponding tags, a block of data of the plurality of blocks of data. The first server associated with the first routing network may be configured to transmit, to the computing device and via the first secure session connection, the plurality of pieces of data associated with the first routing network. The second server associated with the second routing network may be configured to transmit, to the computing device and via the second secure session connection, the plurality of pieces of data associated with the second routing network.

TECHNICAL FIELD

One or more aspects of the disclosure generally relate to computingdevices, computing systems, and computer software. In particular, one ormore aspects of the disclosure generally relate to computing devices,computing systems, and computer software that may be used to determineone or more routing networks based on location and/or an identificationof an item, process and aggregate data from a plurality of data sourcesand perform one or more actions based on the processed and aggregateddata, and/or generate recommendations for and transmitting data to athird party.

BACKGROUND

Data may be generated by numerous data sources, such as user datasources, routing network data sources, and the like. Determining anappropriate routing network to use for activities associated with thegenerated data may be difficult without a proper system for aggregatingdata and recommending routing networks. What is needed is a moreefficient system for receiving and aggregating data from a plurality ofdata sources and/or a more efficient system for selecting optimizedrouting networks for use with activities.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The following summary merely presents some concepts ofthe disclosure in a simplified form as a prelude to the descriptionbelow.

A method, apparatus, computer-readable medium, and/or system maycomprise a wireless sensing device configured to detect that a userdevice is within range of a location. In response to detecting that theuser device is within range of the location, the wireless sensing devicemay transmit, to a computing device, data indicating that the userdevice is within range of the location. The computing device maycomprise a processor and memory storing computer-executable instructionsthat, when executed by the processor, cause the computing device togenerate, for display via the user device, a notification indicating theone or more routing networks for the user device to use at the location.After the user device is within range of the location, the computingdevice may generate a secure session connection between the computingdevice and the user device. The computing device may transmit, to theuser device and via the secure session connection, the notificationindicating the one or more routing networks for the user device to useat the location. The user device may be configured to receive, from thecomputing device and via the secure session connection, the notificationindicating the one or more routing networks for the user device to useat the location. The user device may display the notification indicatingthe one or more routing networks.

In some aspects, detecting that the user device is within range of thelocation may comprise detecting a communication between the user deviceand the wireless sensing device. The wireless sensing device maycomprise one or more of a Bluetooth beacon, a wireless access point, ora near field communication sensor.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device to, inresponse to receiving the data indicating that the user device is withinrange of the location, associate the one or more routing networks withthe user device. The computing device may determine, based on thewireless sensing device, that the user device is not within range of thelocation. The computing device, in response to determining that the userdevice is not within range of the location, may disassociate the one ormore routing networks from the user device.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the user device, a request to use a first routing networkof the one or more routing networks. In response to receiving therequest to use the first routing network, the computing device maytransmit, to a server associated with the first routing network, dataindicating the request to use the first routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the user device, a request to use at least one of the oneor more routing networks. In response to receiving the request to usethe at least one of the one or more routing networks, the computingdevice may determine whether the request indicates a selection of arouting network of the one or more routing networks. In response todetermining that the request does not indicate a selection of a routingnetwork, the computing device may determine, based on the location, afirst routing network of the one or more routing networks. In responseto determining the first routing network, the computing device maytransmit, to a server associated with the first routing network, dataindicating the request to use the at least one of the one or morerouting networks.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to receive, from a user device, dataindicative of an item. The computing device may be located at a firstlocation, and the user device may be located at a second location, wherethe first location is different from the second location. The computingdevice may identify the item based on item recognition using the dataindicative of the item. The computing device may determine, based on theidentified item, one or more routing networks for the user device to usefor the identified item. The computing device may generate, for displayvia the user device, a notification indicating the one or more routingnetworks for the user device to use for the identified item. Thecomputing device may transmit, to the user device, and via a securesession connection, the notification indicating the one or more routingnetworks for the user device to use for the identified item. The userdevice may be configured to receive, from the computing device, thenotification indicating the one or more routing networks for the userdevice to use for the identified item. The user device may display thenotification indicating the one or more routing networks.

In some aspects, the user device may comprise a camera. The dataindicative of the item may comprise an image captured by the camera ofthe user device. The item recognition using the data indicative of theitem may comprise image recognition of the image captured by the cameraof the user device.

In some aspects, the data indicative of the item may comprise codeinformation associated with the item and captured by the camera of theuser device. The item recognition using the data indicative of the itemmay comprise item recognition using the code information associated withthe item and captured by the camera of the user device. The codeinformation may comprise one or more of barcode information or quickresponse (QR) code information.

In some aspects, the system may comprise a wireless sensing deviceconfigured to detect that the user device is within range of the secondlocation. Determining the one or more routing networks for the userdevice to use for the identified item may further be based on the secondlocation.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the user device, a request to use a first routing networkof the one or more routing networks. In response to receiving therequest to use the first routing network, the computing device maytransmit, to a server associated with the first routing network, dataindicating the request to use the first routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the user device, a request to use at least one of the oneor more routing networks. In response to receiving the request to usethe at least one of the one or more routing networks, the computingdevice may determine whether the request indicates a selection of arouting network of the one or more routing networks. In response todetermining that the request does not indicate a selection of a routingnetwork, the computing device may determine, based on the identifieditem, a first routing network of the one or more routing networks. Inresponse to determining the first routing network, the computing devicemay transmit, to a server associated with the first routing network,data indicating the request to use the at least one of the one or morerouting networks.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to generate a secure session connectionbetween the computing device and a server associated with one or morerouting networks. The computing device may receive, from the server andvia the secure session connection, data associated with the one or morerouting networks. The computing device may store, at a database, thedata associated with the one or more routing networks. The computingdevice may determine whether new activity associated with a user andinvolving at least one of the one or more routing networks is detected.In response to determining that new activity associated with the user isdetected, the computing device may transmit, to the database, a requestfor the stored data associated with the one or more routing networks.The computing device may receive, from the database, the stored dataassociated with the one or more routing networks. The computing devicemay determine, based on a plurality of factors determined from thestored data associated with the one or more routing networks, a scorefor the new activity. The server associated with one or more routingnetworks may be configured to transmit, to the computing device and viathe secure session connection, the data associated with the one or morerouting networks.

In some aspects, determining that the new activity associated with theuser is detected may comprise receiving, from a user device associatedwith the user or from a second computing device, a request to use atleast one of the one or more routing networks.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine a location of the new activity. Determining the score for thenew activity may be based at least in part on a comparison of thelocation of the new activity to one or more locations indicated by thestored data associated with the one or more routing networks.Determining the location of the new activity may comprise detecting,based on a wireless sensing device, that a device associated with thenew activity is within range of the location. In response to detectingthat the device associated with the new activity is within range of thelocation, the wireless sensing device may transmit, to the computingdevice, data indicating the location of the new activity.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether the score for the new activity exceeds a threshold. Inresponse to determining that the score for the new activity exceeds thethreshold, the computing device may terminate the new activity.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether the score for the new activity exceeds a threshold. Inresponse to determining that the score for the new activity exceeds thethreshold, the computing device may transmit, to a user deviceassociated with the one or more routing networks, an alert messageindicating that the new activity exceeds the threshold.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether the score for the new activity exceeds a threshold. Inresponse to determining that the score for the new activity exceeds thethreshold, the computing device may transmit, to a computing device at alocation where the new activity was initiated, an alert messageindicating that the new activity exceeds the threshold.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to generate a first secure session connectionbetween the computing device and a first server associated with a firstrouting network. The computing device may receive, from the first serverand via the first secure session connection, data associated with thefirst routing network. The computing device may generate a second securesession connection between the computing device and a second serverassociated with a second routing network. The computing device mayreceive, from the second server and via the second secure sessionconnection, data associated with the second routing network. Thecomputing device may analyze the data associated with the first routingnetwork and the data associated with the second routing network. Thecomputing device may determine, based on the analyzing the dataassociated with the first routing network and the data associated withthe second routing network, a likelihood of a user device using a newrouting network different from the first routing network and the secondrouting network. In response to determining that the likelihood of theuser device using the new routing network exceeds a threshold, thecomputing device may generate, for display via the user device, anotification indicating a recommendation for the new routing network.The computing device may transmit, to the user device, the notificationindicating the recommendation for the new routing network. The userdevice may be configured to display the notification indicating therecommendation for the new routing network. The first server associatedwith the first routing network may be configured to transmit, to thecomputing device and via the first secure session connection, the dataassociated with the first routing network. The second server associatedwith the second routing network may be configured to transmit, to thecomputing device and via the second secure session connection, the dataassociated with the second routing network.

In some aspects, the new routing network may be associated with thefirst server or the second server. Additionally or alternatively, thenew routing network may be associated with a third server different fromthe first server and the second server. The memory may storecomputer-executable instructions that, when executed by the processor,cause the computing device to generate a third secure session connectionbetween the computing device and the third server associated with thenew routing network.

In some aspects, the determining the likelihood of the user device usingthe new routing network may be based on an additional factor differentfrom factors identified from the analyzing the data associated with thefirst routing network and the data associated with the second routingnetwork.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device tocategorize the data associated with the first routing network and thedata associated with the second routing network. The computing devicemay generate, based on the categorizing, a plurality of tags for thedata associated with the first routing network and the data associatedwith the second routing network. The analyzing the data associated withthe first routing network and the data associated with the secondrouting network may be based on the plurality of tags. The computingdevice may store, at a storage device and with one or more tag of theplurality of tags, the data associated with the first routing networkand the data associated with the second routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device to,prior to the analyzing, receive, from the user device, a request toaccess the new routing network. The determining the likelihood of theuser device using the new routing network may be performed in responseto the receiving the request to access the new routing network.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to generate a secure session connectionbetween the computing device and a server associated with a plurality ofrouting networks. The computing device may receive, from the server andvia the secure session connection, data associated with the plurality ofrouting networks. The computing device may determine whether activityassociated with a user and involving at least one of the plurality ofrouting networks is detected. In response to determining that theactivity associated with the user is detected, the computing device maydetermine, based on the data associated with the plurality of routingnetworks, a score for the activity. The computing device may determine athird party routing network different from each routing network of theplurality of routing networks. The computing device may generate, fordisplay via a second computing device, a recommendation to use one ormore routing network of the plurality of routing networks and the thirdparty routing network. The computing device may transmit, to the secondcomputing device, the recommendation to use the one or more routingnetwork of the plurality of routing networks and the third party routingnetwork. The second computing device may be configured to receive, fromthe computing device, the recommendation to use the one or more routingnetwork of the plurality of routing networks and the third party routingnetwork. The second computing device may display the recommendation touse the one or more routing network of the plurality of routing networksand the third party routing network.

In some aspects, the detected activity may be initiated at a location ofthe second computing device. The memory may store computer-executableinstructions that, when executed by the processor, cause the computingdevice to determine whether the score for the activity is less than athreshold score. The determining the third party routing network may beperformed in response to determining that the score for the activity isless than the threshold score.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether the score for the activity is less than a thresholdscore. Generating the recommendation to use the one or more routingnetwork of the plurality of routing networks and the third party routingnetwork may be performed in response to determining that the score forthe activity is less than the threshold score.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device to,prior to transmitting the recommendation to the second computing device,generate a secure session connection between the computing device andthe second computing device.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the second computing device, a selection of the thirdparty routing network to use for the activity. In response to receivingthe selection of the third party routing network to use for theactivity, the computing device may transmit, to a server associated withthe third party routing network, data indicating the selection of thethird party routing network to use for the activity.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceive, from the second computing device, a selection of a firstrouting network of the one or more routing network to use for theactivity. In response to receiving the selection of the first routingnetwork to use for the activity, the computing device may transmit, tothe server associated with the plurality of routing networks, dataindicating the selection of the first routing network to use for theactivity.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to generate a secure session connectionbetween a computing device and a server associated with a plurality ofrouting networks. The computing device may receive, from the server andvia the secure session connection, data associated with the plurality ofrouting networks. The computing device may determine whether a requestto use a routing network of the plurality of routing networks at alocation of a second computing device has been received. In response todetermining that the request to use the routing network has beenreceived, the computing device may determine, based on the dataassociated with the plurality of routing networks, a score for therequest to use the routing network. The computing device may determine athird party routing network different from the routing network of theplurality of routing networks. The computing device may generate, fordisplay via a second computing device at the location, a list comprisingone or more routing network of the plurality of routing networks and thethird party routing network. The computing device may transmit, to thesecond computing device, the list comprising the one or more routingnetwork of the plurality of routing networks and the third party routingnetwork. The second computing device may be configured to receive, fromthe computing device, the list comprising the one or more routingnetwork of the plurality of routing networks and the third party routingnetwork. The second computing device may display the list comprising theone or more routing network of the plurality of routing networks and thethird party routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether a number of the one or more routing network of theplurality of routing networks exceeds a threshold number. Determiningthe third party routing network may be performed in response todetermining that the number of the one or more routing network of theplurality of routing networks does not exceed the threshold number.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine whether a number of the one or more routing network of theplurality of routing networks exceeds a threshold number. Generating thelist comprising the one or more routing network of the plurality ofrouting networks and the third party routing network may be performed inresponse to determining that the number of the one or more routingnetwork of the plurality of routing networks does not exceed thethreshold number.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toprior to transmitting the list to the second computing device, generatea secure session connection between the computing device and the secondcomputing device.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device tostore, at a database, the data associated with the plurality of routingnetworks. The determining the score for the request to use the routingnetwork may be performed based on the stored data associated with theplurality of routing networks.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device totransmit, to the second computing device, the score for the request touse the routing network.

A method, apparatus, computer-readable medium, and/or system maycomprise a computing device comprising a processor and memory storingcomputer-executable instructions that, when executed by the processor,cause the computing device to generate a first secure session connectionbetween a computing device and a first server associated with a firstrouting network. The computing device may receive, from the first serverand via the first secure session connection, a plurality of pieces ofdata associated with the first routing network. The computing device maygenerate a second secure session connection between the computing deviceand a second server associated with a second routing network. Thecomputing device may receive, from the second server and via the secondsecure session connection, a plurality of pieces of data associated withthe second routing network. The computing device may categorize each ofthe plurality of pieces of data associated with the first routingnetwork and the plurality of pieces of data associated with the secondrouting network. The computing device may generate, based on thecategorizing, one or more tags for each of the plurality of pieces ofdata associated with the first routing network and the plurality ofpieces of data associated with the second routing network. The computingdevice may generate, based on the one or more tags, a plurality ofblocks of data. Each block of data of the plurality of blocks of datamay comprise at least a portion of the plurality of pieces of dataassociated with the first routing network and the plurality of pieces ofdata associated with the second routing network. The computing devicemay store, at a storage device and with one or more corresponding tags,the plurality of blocks of data. The computing device may receive arequest to share data with a third party computing device. In responseto receiving the request to share data with the third party computingdevice, the computing device may transmit, to the third party computingdevice and based on the one or more corresponding tags, a block of dataof the plurality of blocks of data. The first server associated with thefirst routing network may be configured to transmit, to the computingdevice and via the first secure session connection, the plurality ofpieces of data associated with the first routing network. The secondserver associated with the second routing network may be configured totransmit, to the computing device and via the second secure sessionconnection, the plurality of pieces of data associated with the secondrouting network.

In some aspects, receiving the request to share data may comprisereceiving, from a user device or from the third party computing device,the request to share data. The memory may store computer-executableinstructions that, when executed by the processor, cause the computingdevice to, prior to transmitting the block of data, determine whetherthe computing device has permission to share the block of data with thethird party computing device. Transmitting the block of data may beperformed in response to determining that the computing device haspermission to share the block of data with the third party computingdevice.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device to,prior to transmitting the block of data, determine whether the computingdevice has permission to share the block of data with the third partycomputing device. In response to determining that the computing devicedoes not have permission to share the block of data with the third partycomputing device, the computing device may generate, for display via auser device, a notification requesting permission for the computingdevice to share the block of data with the third party computing device.The computing device may receive, from the user device, permission forthe computing device to share the block of data with the third partycomputing device. The transmitting the block of data may be performed inresponse to receiving the permission for the computing device to sharethe block of data with the third party computing device.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device togenerate a recommendation for a second block of data of the plurality ofblocks of data to share with the third party computing device. Thecomputing device may transmit, to the third party computing device, thesecond block of data. Generating the recommendation for the second blockof data of the plurality of blocks of data to share with the third partycomputing device may be based on one or more of the block of data or thethird party computing device.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device togenerate a third secure session connection between the computing deviceand a user device. The computing device may receive, from the userdevice and via the third secure session connection, a plurality ofpieces of user data associated with the user device. The computingdevice may update one or more of the plurality of blocks of data with atleast a portion of the plurality of pieces of user data associated withthe user device.

A method, apparatus, computer-readable medium, and/or system maycomprise a user device configured to transmit, to a computing device,data indicative of a first routing network and data indicative of asecond routing network. The computing device may comprise a processorand memory storing computer-executable instructions that, when executedby the processor, cause the computing device to receive, from the userdevice, the data indicative of the first routing network and the dataindicative of the second routing network. The computing device maydetermine, based on the data indicative of the first routing network, aplurality of parameters for the first routing network. The computingdevice may determine, based on the data indicative of the second routingnetwork, a plurality of parameters for the second routing network. Thecomputing device may generate a secure session connection between thecomputing device and a server associated with the second routingnetwork. The computing device may receive, from the server and via thesecure session connection between the computing device and the serverassociated with the second routing network, a modification to one ormore parameters of the plurality of parameters for the second routingnetwork. The computing device may determine priorities for the firstrouting network and the second routing network based at least in part onthe plurality of parameters for the first routing network and themodification to the one or more parameters of the plurality ofparameters for the second routing network. The computing device maystore, at a database, the priorities for the first routing network andthe second routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device to,prior to receiving the data indicative of the plurality of routingnetworks, generate a secure session connection between the computingdevice and the user device. Receiving the data indicative of theplurality of routing networks may comprise receiving the data indicativeof the plurality of routing networks via the secure session connection.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device togenerate a secure session connection between the computing device and aserver associated with the first routing network. The computing devicemay receive, from the server associated with the first routing network,and via the secure session connection between the computing device andthe server associated with the first routing network, a modification toone or more parameters of the plurality of parameters for the firstrouting network. Determining the priorities for the first routingnetwork and the second routing network may comprise determining thepriorities for the first routing network and the second routing networkbased at least in part on the modification to the one or more parametersof the plurality of parameters for the first routing network and themodification to the one or more parameters of the plurality ofparameters for the second routing network.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device todetermine a data translation for one or more of the plurality ofparameters for the first routing network and the plurality of parametersfor the second routing network. The determining the priorities for thefirst routing network and the second routing network may be based on thedata translation.

In some aspects, the data indicative of the first routing network andthe data indicative of a second routing network may comprise user inputdata indicative of the first routing network and user input dataindicative of the second routing network received at the user device andfrom a user.

In some aspects, the memory may store computer-executable instructionsthat, when executed by the processor, cause the computing device toreceiving, by the computing device and from the user device, a requestto use the first routing network. In response to receiving the requestto use the first routing network, the computing device may transmit, toa server associated with the first routing network, data indicating therequest to use the first routing network.

In some aspects, the system may further comprise the server associatedwith the second routing network. The server may be configured totransmit, to the computing device and via the secure session connectionbetween the computing device and the server associated with the secondrouting network, the modification to the one or more parameters of theplurality of parameters for the second routing network.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example and not limitedin the accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 illustrates an example operating environment in which variousaspects of the disclosure may be implemented.

FIG. 2 illustrates another example operating environment in whichvarious aspects of the disclosure may be implemented.

FIGS. 3A-C illustrate an example of at least a portion of a flow diagramfor determining one or more routing networks based on location and/or anidentification of an item in which various aspects of the disclosure maybe implemented.

FIGS. 4A-C illustrate an example of at least a portion of a flow diagramfor processing and aggregating data from a plurality of data sources andperforming one or more actions based on the processed and aggregateddata in which various aspects of the disclosure may be implemented.

FIG. 5 illustrates an example of at least a portion of a flow diagramfor generating recommendations for and transmitting data to a thirdparty in which various aspects of the disclosure may be implemented.

DETAILED DESCRIPTION

In the following description of various illustrative embodiments,reference is made to the accompanying drawings, which form a parthereof, and in which is shown, by way of illustration, variousembodiments in which the claimed subject matter may be practiced. It isto be understood that other embodiments may be utilized, and thatstructural and functional modifications may be made, without departingfrom the scope of the present claimed subject matter.

FIG. 1 illustrates an example operating environment in which variousaspects of the disclosure may be implemented. An illustrative system 100for implementing methods according to the present disclosure is shown.System 100 may include a data aggregation and computing device 101. Aswill be described in further detail below, the computing device 101 mayfacilitate determining one or more routing networks (e.g., data routingnetworks) based on location and/or an identification of an item,processing and aggregating data from a plurality of data sources andperforming one or more actions based on the processed and aggregateddata, and/or generating recommendations for and transmitting data to athird party.

The computing device 101 may have a processor 103 for controllingoverall operation of the computing device and its associated components,including for example random access memory (RAM) 105, read-only memory(ROM) 107, input/output (I/O) module 109, and memory 111. I/O module 109may include, e.g., a microphone, mouse, keypad, touch screen, scanner,optical reader, and/or stylus (or other input device(s)) through which auser of computing device 101 may provide input, and may also include oneor more of a speaker for providing audio output and a video displaydevice for providing textual, audiovisual, and/or graphical output.Software may be stored within memory 111 and/or other storage to provideinstructions to processor 103 for enabling computing device 101 toperform various functions. For example, memory 111 may store softwareused by the computing device 101, such as an operating system 113,application programs 115, and an associated database 117. Additionallyor alternatively, some or all of the computer executable instructionsfor computing device 101 may be embodied in hardware or firmware (notshown).

The computing device 101 may operate in a networked environmentsupporting connections to one or more other computers, such as server121 and server 131 (or other devices). The servers 121 and 131 may beservers that include any or all of the elements described above withrespect to the computing device 101. The network connections depicted inFIG. 1 include a local area network (LAN), and a wide area network(WAN), but may also include other networks. The computing device 101 maycommunicate with other computing devices using a communication interface119 or other network interface for establishing communications over aLAN and/or a WAN, such as the Internet. It will be appreciated that thenetwork connections shown are illustrative and other means ofestablishing a communications link between the computers may be used.The existence of any of various well-known protocols such as TCP/IP,Ethernet, FTP, HTTP, HTTPS, and the like is presumed.

In some aspects, the computing device 101 may comprise anapplication-based system for connecting a seller computing device 169, afirst server 121, a second server 131, a user device 153, or any otherdevices.

System 100 may also include one or more servers 121 and 131 (and otherservers, which are not illustrated), which may be any suitable server,processor, computer, or data processing device, or combination of thesame. Servers 121 and/or 131 may each be owned, managed, and/or operatedby a particular entity. In some aspects, each server 121 or 131 may beassociated with one or more routing networks, such as financial routingnetworks and their associated accounts. Servers 121 and/or 131 may beconnected by one or more communications links 181 and 183 to network151. As will be described in further detail in the examples below,servers 121 and 131 may store data in its respective database 123 or 133and may communicate, via a communication session, the data to otherdevices, such as the data aggregation and computing device 101, sellercomputing device 169, user devices 151 (e.g., laptop) and 153 (e.g.,mobile phone), and/or or other devices. Servers 121 and 131 may store,e.g., via the database 123 and 133, transaction information (e.g., time,date, type of transaction), user information (e.g., username, accountnumber, PIN, other unique identifiers), and various other information.Any of the elements in FIG. 1 may be implemented as one or morecomputing device, such as the example computing device 201 described inconnection with FIG. 2 below.

Network 151 may be any suitable network including the Internet, anintranet, a wide-area network (WAN), a local-area network (LAN), awireless network, a digital subscriber line (DSL) network, a frame relaynetwork, an asynchronous transfer mode (ATM) network, a virtual privatenetwork (VPN), a cellular network, or any combination of any of thesame. Communications links 181, 183, 185, or other communication linksmay be any communications links suitable for communicating among thedata aggregation and computing device 101, seller computing device 169,servers 121 and 131, user devices 151 and 153, and/or external datastorage 141, such as network links, dial-up links, wireless links,hard-wired links, or other communications links.

A location 161 may comprise a seller's location, such as a retail storeor any other type of seller's location. The location 161 may include oneor more seller computing devices 169, such as point-of-sale computingdevices or other devices usable to facilitate transactions at thelocation 161. The seller computing device 169 may include one or more ofthe components of the example computing device 201 described inconnection with FIG. 2 below. The location 161 may include a pluralityof items 171, such as products or services for sale at the location 161.Each item 171 may include one or more indications to identify the item171, such as a barcode 173 and/or a quick-response (QR) code 175. Thelocation 161 may also include one or more wireless sensing devices 165(e.g., a wireless beacon, such as a Bluetooth beacon) or 167 (e.g., awireless access point or near field communication (NFC) sensor). Thewireless sensing devices 165 or 167 may be used to detect the presenceof a user, such as by communicating with a user device 151 or 153, orany other user device within range of the wireless sensing devices.

The user devices 151 and/or 153 may comprise mobile devices (e.g.,mobile phones, smartphones, PDAs, notebooks, tablets, other mobiledevices) including various other components, such as a battery, speaker,and antennas. In some aspects, the user device 153 may include aninterface for communicating with wireless sensing devices 165, such as aBluetooth radio, a Wi-Fi radio, and/or an NFC reader. As will bedescribed in further detail below, the presence of the user may bedetected based on communications between the user device 153 and one ormore of the wireless sensing devices 165. The user device 153 mayinclude a camera for capturing images of, for example, the item 171, thebarcode 173, the QR code 175, or any other identifier for the item 171.The user device 153 may include input devices for receiving user input,such as a touchscreen display, a physical keyboard, a microphone, andthe like. As will be described in further detail below, the user mayinput a search string for an item, provide authentication credentials,select routing networks, and the like via the input devices of the userdevice 153.

FIG. 2 illustrates an example block diagram of a computing device 201(e.g., a computer server, desktop computer, laptop computer, tabletcomputer, other computing devices) in an example computing environment200 that may be used according to one or more illustrative embodimentsof the disclosure. The computing device 201 may have a processor 203 forcontrolling overall operation of the server and its associatedcomponents, including for example random access memory (RAM) 205,read-only memory (ROM) 207, input/output (I/O) module 209, and memory215.

I/O module 209 may include, e.g., a microphone, mouse, keypad, touchscreen, scanner, optical reader, and/or stylus (or other inputdevice(s)) through which a user of computing device 201 may provideinput, and may also include one or more of a speaker for providing audiooutput and a video display device for providing textual, audiovisual,and/or graphical output. Software may be stored within memory 215 and/orother storage to provide instructions to processor 203 for enablingcomputing device 201 to perform various functions. For example, memory215 may store software used by the computing device 201, such as anoperating system 217, application programs 219, and an associateddatabase 221. Additionally or alternatively, some or all of the computerexecutable instructions for computing device 201 may be embodied inhardware or firmware (not shown).

The computing device 201 may operate in a networked environmentsupporting connections to one or more remote computers, such asterminals 241 and 251. The terminals 241 and 251 may be personalcomputers or servers that include any or all of the elements describedabove with respect to the computing device 201. The network connectionsdepicted in FIG. 2 include a local area network (LAN) 225 and a widearea network (WAN) 229, but may also include other networks. When usedin a LAN networking environment, the computing device 201 may beconnected to the LAN 225 through a network interface or adapter 223.When used in a WAN networking environment, the computing device 201 mayinclude a modem 227 or other network interface for establishingcommunications over the WAN 229, such as the Internet 231. It will beappreciated that the network connections shown are illustrative andother means of establishing a communications link between the computersmay be used. The existence of any of various well-known protocols suchas TCP/IP, Ethernet, FTP, HTTP, HTTPS, and the like is presumed.Computing device 201 and/or terminals 241 or 251 may also be mobiledevices (e.g., mobile phones, smartphones, PDAs, notebooks, tablets,other mobile devices) including various other components, such as abattery, speaker, and antennas.

FIGS. 3A-C illustrate an example of at least a portion of a flow diagramfor determining one or more routing networks based on location and/or anidentification of an item in which various aspects of the disclosure maybe implemented.

In step 301, the data aggregation and computing device 101 may receivedata indicative of a plurality of routing networks. In some aspects, theplurality of routing networks may comprise electronic networks forrouting financial transactions. Moreover, each routing network maycorrespond to a particular account, such as a credit card account, adebit card account, a savings account, a checking account, and the like.The data indicative of the plurality of routing networks may include,for example, data on various aspects of a particular account, such asrewards (e.g., spending rewards or minimum balance rewards), discounts(e.g., discounts on purchases), bonuses, annual percentage rates (APRs),product protection (e.g., extended warranty, price protection, and thelike), or any other aspects of the account. In some aspects, thecomputing device 101 may receive the data indicative of the plurality ofrouting networks from a user (e.g., input via a user device 153) and/orfrom each of the servers 121 and 131 associated with an account. In someaspects, the computing device 101 may receive an indication of the typeof account (e.g., credit card with a first issuer), and the computingdevice 101 may determine the aspects of the account without having toreceive the information from the user device 153 or a server 121 or 131.For example, after receiving the indication of the account, thecomputing device 101 may communicate with third party servers todetermine the various aspects of the account (e.g., APRs, bonuses, andthe like).

In step 303, the computing device 101 may receive parameters for usingthe plurality of routing networks. In some aspects, the user may inputone or more of the parameters via a user device, such as user device 151or user device 153. In some aspects, the parameters may comprise goalsfor optimizing usage of the routing networks, such as the user'sspending goals. Optimizing usage of the routing networks may comprise,for example, using the lowest APR (e.g., no APR) accounts, using acredit card with the lowest interest rate, using a debit card,maintaining a minimum balance in a bank account after spending, and thelike. Optimizing usage of the routing networks may additionally oralternatively comprise maximizing rewards for using a particular routingnetwork (e.g., cash back rewards, points rewards, airline miles, and thelike) and/or maximizing discounts for using a particular routing network(e.g., a certain amount, such as $10, statement credit if the userspends a certain higher amount, such as $75, at a particular store or ona particular item).

In step 305, the computing device 101 may determine data translationinformation for one or more of the parameters. The rewards and/or awardsfor each of the plurality of routing networks may comprise a differentformat, and the computing device 101 may translate each format to use acommon metric. For example, the computing device 101 may translate 1mile earned from credit card A to 2 cents. The computing device 101 maytranslate 1 point earned from credit card B to 1 cent. The computingdevice 101 might not translate some currencies. For example, each point(e.g., cent) earned for spending via a cash-back rewards credit card maybe equivalent to 1 cent. The user may input, via a user device, the datatranslation information. Additionally or alternatively, the computingdevice 101 may access one or more data sources (e.g., database 123,database 133, or data storage 141) to automatically determine the datatranslation information for each of the routing networks without userinput.

In step 307, the computing device 101 may receive, from a first server121, a modification for one or more of the parameters. The first server121 may be associated with one or more of the plurality of routingnetworks (e.g., one or more credit card, debit card, and other accountsowned by the user). The computing device 101 may transmit message(s) tothe first server 121, wherein the message(s) indicate the user-specifiedparameters (e.g., optimization parameters). For example, the user maydesire to maximize spending rewards, which may be based on the datatranslation, and the computing device 101 may transmit an indicationthereof to the first server 121. The first server 121 may receive themessage(s) and determine whether to modify (e.g., update) the parametersfor a particular routing network. For example, the first server 121 mayincrease spending rewards for a particular credit card owned by theuser, such as increasing everyday spending from 1 cent to 1.25 cents. Asanother example, the first server 121 may increase spending atparticular retail stores from 1 cent to 4 cents, such as retail storesthe user has visited or is expected to visit. The increase may be for alimited amount of time (e.g., 3 months). The first server 121 may sendan indication of the modification for one or more of the parameters tothe computing device 101.

In step 309, the computing device 101 may receive, from a second server131, a modification for one or more of the parameters. The second server131 may be associated with another one or more the plurality of routingnetworks. The computing device 101 may transmit message(s) to the secondserver 131, wherein the message(s) indicate the user-specifiedparameters (e.g., optimization parameters). For example (and asdescribed above), the user may desire to maximize spending rewards,which may be based on the data translation, and the computing device 101may transmit an indication thereof to the second server 131. The secondserver 131 may receive the message(s) and determine whether to modify(e.g., update) the parameters for a particular routing networkassociated with the second server 131. For example, the second server131 may increase spending rewards for a particular credit card owned bythe user (and associated with the second server 131), such as increasingspending from 1 cent to 3 cents for a particular amount of time (e.g., 1month). The second server 131 may send an indication of the modificationfor one or more of the parameters to the computing device 101.

In step 311, the computing device 101 may determine priorities for theplurality of routing networks based on the received parameters, thereceived modifications, and/or the data translation information. In someaspects, the computing device 101 may assign higher priorities torouting networks with higher spending rewards and/or discounts and mayassign lower priorities to routing networks with lower spending rewardsand/or discounts. In the above example, the computing device 101 mayprioritize the credit card associated with the second server 131 overthe credit card associated with the first server 121 for the first monthbecause the credit card associated with the second server 131 offers 3cents back per dollar spent, whereas the credit card associated with thefirst server 121 offers less than 3 cents back per dollar spent duringthe same time frame. On the other hand, the computing device 101 mayprioritize the credit card associated with the first server 121 over thecredit card associated with the second server 131 across all threemonths for spending at particular retail stores covered by the creditcard associated with the first server 121 (e.g., 4 cents per dollarspent). The computing device 101 may prioritize the credit cardassociated with the first server 121 over the credit card associatedwith the second server 131 for the second and third months because ofthe higher spending rewards. In some aspects, the computing device 101may determine priorities for the plurality of routing networks based oneach routing network's baseline rewards and/or bonuses (e.g., withoutgiving the servers 121 or 131 an opportunity to increase the rewardsand/or bonuses, such as in steps 307 and/or 309).

While two credit cards are described above, the computing device 101 mayreceive information for more than two cards (e.g., all of the user'scredit cards, debit cards, and the like), and prioritize the creditcards based on each credit card's respective reward or bonus to theuser. In some aspects, the computing device 101 may provide a biddingsystem for each of the servers, routing networks, and the like. Thebidding system may comprise, for example, an auction site for thebidders (e.g., the routing networks or accounts thereof). For example,if a first server increases the spending bonus on a particular creditcard, the computing device 101 may transmit a notification to otherservers that the first server increased the spending bonus and/or theamount that the first server increased the spending bonus. The computingdevice 101 may give the other servers an opportunity, e.g., within aparticular time period, to out-bid the first server's credit card offer.The bidders may have the ability, through an auction site, to see otherbids. The bidding system may be open to all routing networks or may berestricted to allow only some routing networks to submit bids. In someaspects, payment service providers may bid for display prominence or usewithin a payment device, and consumers may choose the preferred paymentservice provider at a transaction, product, or merchant level. Thebidding system may be opaque to consumers.

In some aspects, the computing device 101 may be a computing device of acard issuer that issues a single card that may enable a plurality (e.g.,5 and/or all) of the user's routing networks to compete for the payment.The consumer may simply use the card issued by the card issuer, with theconsumer confident of getting the best deal to optimize a transactionwith the consumer's existing cards. The computing device 101 maycommunicate with the servers 121 and 131 in response to the user usingthe single card to determine which routing network to use.Alternatively, the computing device 101 may have previously stored thepriorities and communicate with the selected routing network in responseto use of the common card.

In step 313, the computing device 101 may store the priorities at adatabase, such as an internal database or an external database (e.g.,memory 111 or data storage 141). For example, each available routingnetwork may be assigned a number (e.g., 1, 2, 3, 4, and the like) orother indication of the priority of the routing network relative toother routing networks. The indication of the priority of the routingnetwork, along with an indication of the respective routing network, maybe stored for future use, such as when a user activity (e.g., spendingactivity) is detected. The computing device 101 may also store anassociation between the routing networks and/or particular sellerlocations. For example, the computing device 101 may store an indicationthat account 1, account 2, and account 3 may be used at a sellerlocation A, and an indication that account 2, account 3, and account 4may be used at a seller location B.

In step 315, the computing device 101 may connect to a seller computingdevice 169. In some aspects, the seller computing device 169 maycomprise a seller's server (e.g., for an online seller), point of saledevice, or any other computing device used to facilitate transactionsbetween a seller and a customer. The computing device 101 mayauthenticate with the seller computing device 169, and the sellercomputing device 169 may authenticate with the computing device 101. Thecomputing device 101 and the seller computing device 169 may establish asecure communication tunnel (e.g., a secure session connection), such asvia a communication handshake procedure. In some aspects, the connectionbetween the computing device 101 and the seller computing device 169 mayoccur prior to the computing device 101 and the seller computing device169 transmitting and/or receiving data, such as secured data.

In step 317, the computing device 101 may connect to a plurality ofrouting networks, such as the first server 121 and/or the second server131. The computing device 101 may authenticate with the first server 121and/or the second server 131, and the first server 121 and/or the secondserver 131 may authenticate with the computing device 101. The computingdevice 101 and the first server 121 and/or the second server 131 mayestablish a secure communication tunnel (e.g., a secure sessionconnection), such as via a communication handshake procedure. In someaspects, the connection between the computing device 101 and each of thefirst server 121 and second server 131 (and other servers associatedwith routing networks) may occur prior to the computing device 101 andthe servers transmitting and/or receiving data, such as secured data(e.g., data associated with the plurality of routing networks).

In step 319, the computing device 101 may connect to a user device(e.g., a mobile device), such as a laptop 151, a mobile phone 153, orany other user device. The computing device 101 may authenticate withthe user device 153, and the user device 153 may authenticate with thecomputing device 101. The computing device 101 and the user device 153may establish a secure communication tunnel (e.g., a secure sessionconnection), such as via a communication handshake procedure. In someaspects, the connection between the computing device 101 and the userdevice 153 may occur after a user of the user device 153 has grantedpermission to the computing device 101 to connect to the user device153. In some aspects, the connection between the computing device 101and the user device 153 may occur after the user device is within rangeof a location, such as a seller location 161.

Proceeding to FIG. 3B, in step 321, the user device 153 and/or awireless sensing device 165 (e.g., wireless beacon, such as a Bluetoothbeacon) or 167 (e.g., wireless access point or near field communication(NFC) sensor) may be used to detect whether the user device 153 iswithin range of a seller location 161. For example, the user device 153may transmit information identifying the user device 153 to a wirelesssensing device 165 or 167 at the seller location 161 (or vice versa).The information may be transmitted when the user device 153 comes withinrange (e.g., a threshold range) of a wireless sensing device 165, andthe information may be used to detect that the user device 153 is withinrange of a seller location 161. In some aspects, the location of theuser device 153 may be determined using location services of the userdevice 153, which may be based on, for example, GPS coordinatesinformation, Wi-Fi hotspot information, and/or mobile carrier networkinformation. The user device 153 may be within range of the location 161based on a threshold distance from the location 161 (e.g., 0 feet, 50feet, 100 feet, and the like). If the user device 153 is not withinrange of the location 161 (step 321: N), the method may return to step321 and wait until the user device 153 is within range of the location161. If the user device 153 is within range of the seller location 161(step 321: Y), the method may proceed to step 323.

In step 323, the user device 153, a wireless sensing device 165 or 167,and/or a computing device in communication with the wireless sensingdevice 165 or 167 may transmit (e.g., send), to the computing device101, data (e.g., a message) indicating that the user device 153 has beendetected. In some aspects, the user device 153 may send the messageindicating that the user device 153 is within range of the location 161.

In step 325, the user of the user device 153 may be authenticated. Insome aspects, the user device 153 may include a mobile application usedto connect the user device 153 to the computing device 101. The user ofthe user device 153 may authenticate with the computing device 101 byproviding authentication information, such as a username and password,biometrics (e.g., fingerprint, facial recognition, and the like), or anyother authentication information. The authentication may comprise asingle account level authentication, e.g., as opposed to an onlinebanking or application-level authentication.

In step 327, the computing device 101 may determine one or more routingnetworks based on the location of the user device 153 (e.g., location161). The computing device 101 may retrieve, from internal memory 111and/or data storage 141, a listing of the routing network(s) associatedwith the location 161. The routing network(s) associated with thelocation 161 may comprise, for example, accounts that the user of theuser device 153 may use to make purchases at the location 161. That is,geo-tagging may be used to link accounts to locations. For example, oneor more of the user's accounts may be linked to a retail location 161,and the user may make purchases using one or more of the accounts at theretail location 161. The computing device 101 may also associate the oneor more routing networks with the user device 153, such as in responseto receiving the data indicating that the user device is within range ofthe location 161. By associating the one or more routing networks withthe user device 153, the user device 153 may be permitted to (orrecommended to) use the one or more routing networks while at thelocation 161.

In step 329, the computing device 101 and/or the user device 153 maygenerate for display a notification of the one or more routing networksdetermined based on the location. For example, the notification of theone or more routing networks may comprise a listing of the routingnetwork(s) available to the user for the location 161, such as creditcard A, credit card B, debit card A, and the like. The generatednotification may include other information associated with each routingnetwork. For example, the notification may indicate the amount ofrewards for each of the accounts available to the user at the location161, such as 3% back for each dollar spent on credit card A generally or4% back for each dollar spent on credit card B at the particularlocation 161, which may comprise a retail store location. The computingdevice 101 may generate the display and transmit the generated displayto the user device 153 for display or the user device 153 may itselfgenerate the display.

In step 331, the user device 153 may display, on a display device of theuser device 153, the notification of the one or more routing networksfor the location. If the computing device 101 generated thenotification, the user device 153 may display the notification afterreceiving it from the computing device 101.

In step 333, the user device 153 and/or a wireless sensing device 165 or167 may be used to determine whether the user device 153 is outside therange of the seller location 161. If the user device 153 is outside therange of the seller location 161 (step 333: Y), the method may return tostep 321 to determine whether the user device 153 comes back withinrange of the seller location 161. The computing device 101 may alsodisassociate the routing networks determined in step 327, such that therouting networks are not automatically used when the user device 153 isoutside the range of the location 161. If the user device 153 is stillwithin range of the seller location 161 (step 333: N), the method mayproceed to step 335. As previously described, determining whether theuser device 153 is outside the range of the location 161 may be based oncommunications between a wireless sensing device and the user device 153(or the lack thereof) and/or the location of the user device 153determined using location services of the user device 153.

In step 335, the computing device 101 and/or the user device 153 maydetermine whether data indicative of an item, such as item 171, has beenreceived. The item may comprise, for example, a product or service beingsold at the seller's location 161 or a product or service being soldonline. The data indicative of the item may comprise, for example,information from the barcode 173, the QR code 175, or any other codeused to identify the item 171. For example, the user device 153 mayscan, via a camera, the barcode 173 and/or the QR code 175 and maytransmit the code information to the computing device 101 foridentification of the item 171. Alternatively, the user device 153 mayitself identify the item 171 based on the code information and maytransmit the identity of the item 171 to the computing device 101. Insome aspects, the data indicative of the item may comprise a photographof the item, which may have been captured by a camera of the user device153. The data indicative of the item may additionally or alternativelybe generated from a search on a search engine made by the user of theuser device 153, such as a text search for “kitchen stand mixer.” Asearch engine search may also be based on the image of the item capturedby the camera of the user device 153. If data indicative of an item hasnot been received (step 335: N), the method may proceed to step 347illustrated in FIG. 3C, which will be described in further detail below.If data indicative of an item 171 has been received (step 335: Y), themethod may proceed to step 337.

In step 337, the computing device 101 may determine the item 171 usingthe data indicative of the item. For example, the computing device 101may determine the item 171 based on the barcode, QR, or other codeinformation. The computing device may additionally or alternatively usean item recognition technique to identify the item based on an image ofthe item captured by the user device 153. For example, the computingdevice 101 may compare the image of the item 171 to other images. If theimage of the item 171 includes text, the computing device 101 may useoptical character recognition (OCR) to identify the item.

In step 339, the computing device 101 may determine one or moreparameters of the routing networks for the identified item 171 and/orthe seller location 161. For example, the computing device 101 maydetermine the amount of rewards for the user if the user purchases theitem 171 at the location 161 using a particular credit card, debit card,and the like. The computing device 101 may also determine the balanceand/or amount that would be remaining on each account after the userpurchases the item 171 and compare the balance and/or amount to athreshold balance and/or amount. The computing device 101 may alsodetermine whether any of the routing networks provides protection forthe product, such as extended warranty, accident protection, and thelike, and the amount of the protection (e.g., up to $500) or theduration of the protection (e.g., extending the warranty by 1 year).

In some aspects, the computing device 101 may communicate with one ormore of the servers 121 and/or 131 after (e.g., in response to)determining that the user is interested in an item 171 (e.g., afterreceiving data indicative of the item 171). In particular, the servers121 and/or 131 may be given the opportunity to improve the user'srewards for using a particular payment method. For example (and aspreviously described), the computing device 101 may provide a biddingsystem for each of the servers, routing networks, and the like. If thefirst server 121 increases the spending bonus on a particular creditcard, the computing device 101 may transmit a notification to the secondserver 131 that the first server 121 increased the spending bonus and/orthe amount that the first server 121 increased the spending bonus. Thecomputing device 101 may give the second server 131 an opportunity,e.g., within a particular time period, to out-bid the first server'scredit card offer. That is, the computing device 101 may facilitatepayment providers bidding for the consumer's business based on theconsumer's interest in particular items (e.g., by performing a websearch of the item).

In step 341, the computing device 101 may generate a recommendation forone or more routing networks to use for transmitting data associatedwith the item 171 and/or location 161, based on the identity of the item171 and/or the location 161. The computing device 101 may also generatea display with the recommendation and transmit the generated display tothe user device 153. For example, the generated display may list one ormore of the routing networks, in addition to the benefits for using eachrouting network. For example, the display may indicate, for a firstcredit account, 3% cash back and $500 purchase protection. The displaymay also indicate, for a second credit account, 1% cash back, $500purchase protection, and 1 year extended warranty. The display may alsoindicate, for example, the balance and credit limit for each creditaccount. As previously described, the display may prioritize the routingnetworks based on parameters provided by the user. For example, if theuser input a preference to prioritize the amount of rewards, the displaymay list first the payment option that would result in the highestreward. If the user input a preference to prioritize an extendedwarranty, the display may list first the payment option that wouldresult in the longest extended warranty. In some aspects, the displaymight only list a single payment option (e.g., the optimal paymentoption).

In step 343, the user device 153 may receive the generated display anddisplay, on a display device of the user device 153, the recommendationfor the one or more recommended routing networks.

Proceeding to FIG. 3C, in step 347, the computing device 101 maydetermine whether it has received a request to use one or more of therecommended routing networks. For example, the user of the user device153 may desire to purchase the item 171 using one or more of therecommended routing networks and may select, via the application on theuser device 153 or via a seller computing device 169, one or more of therouting networks (e.g., at checkout). The user device 153 and/or theseller computing device 169 may transmit the selection to the computingdevice 101. If the computing device 101 has not received a request touse one or more of the recommended routing networks (step 347: N), themethod may return to step 333 illustrated in FIG. 3B, and previouslydescribed. If the computing device 101 has received a request to use oneor more of the recommended routing networks (step 347: Y), the methodmay proceed to step 349.

In step 349, the computing device 101 may determine whether it hasreceived, such as from the user device 153 or the seller computingdevice 169, a selection of one or more of the recommended routingnetworks. For example, the computing device 101 may use the routingnetwork selected by the user or may use a default routing network. Ifthe computing device 101 has not received a user selection (step 349:N), the method may proceed to step 351. If, on the other hand, thecomputing device 101 has received a user selection (step 349: Y), themethod may proceed to step 353.

In step 351, the computing device 101 may select the routing network(s)to use for the purchase of the item 171 based on one or more parameters,the location 161, and/or the item 171. For example, if the user orseller did not indicate a selection of one or more of the routingnetworks to use, the computing device 101 may use one or more defaultrouting networks, such as to optimize the parameters previously selectedby the user (e.g., greatest rewards, product protection, and the like).In some aspects, the option to automatically make a payment may beuser-configurable (e.g., via a toggle), so that the user can decidewhether or not to decide on a particular payment option or to default toa particular payment option, resulting in a quicker and more efficientuse of the routing networks.

In step 353, the computing device 101 may use the routing network(s)selected by the user of the user device 153 (or default routingnetwork(s)) for purchasing the item 171. For example, the computingdevice 101 may communicate with the server (e.g., first server 121 orsecond server 131) corresponding to the selected routing networks tomake the payment. In some aspects, two or more routing networks may havebeen selected, and the computing device 101 may communicate with each ofthe servers corresponding to the two or more routing networks. The usermay specify, for each routing network, the amount to use for thetransaction. In some aspects, the computing device 101 may divide up thepayment across a plurality of routing networks if, for example, aspending limit on one of the routing networks is close to being reachedor would be exceeded if the entire payment is made using that routingnetwork. As previously described, the payments may also be split up inorder to optimize (e.g., maximize) the user's selected priorities. Forexample, consumers may have multiple rewards credit cards, and eachcredit card may have different reward caps. The computing device 101 mayplace spending on one of these credit cards until the reward cap is met,and place spending on the next best credit card.

FIGS. 4A-C illustrate an example of at least a portion of a flow diagramfor processing and aggregating data from a plurality of data sources andperforming one or more actions based on the processed and aggregateddata in which various aspects of the disclosure may be implemented.

In step 401, a data aggregation and computing device 101 may determineone or more available routing networks. The one or more availablerouting networks may comprise electronic networks for routing financialtransactions. Each routing network may correspond to a particularaccount of a user (e.g., the user of the user device 153), such as acredit card account, a debit card account, a savings account, a checkingaccount, and the like.

In step 403, the computing device 101 may receive data associated withthe one or more available routing networks. The data associated witheach routing network may comprise, for example, transaction data forthat account, such as transaction date, transaction amount, parties ofthe transaction, and the like. The data may also comprise, for example,a current balance of the account, a historical balance of the account, aminimum balance for the account, a maximum balance for the account,and/or threshold balances for the account. As previously described, thecomputing device 101 may establish secure connections with one or moreservers associated with one or more routing networks (e.g., server 121,server 131, or other servers). After establishing the secureconnection(s), the computing device 101 may receive data associated withthe one or more routing networks.

In step 405, the computing device 101 may receive user data from a userdevice (e.g., a mobile device), such as a laptop 151, a mobile phone153, or any other user device. In some aspects, the user data maycomprise data that the user inputs via the user device 153. The inputteddata may include additional data associated with one or more of theavailable routing networks (e.g., additional transaction informationand/or balance information). The user data may also comprise datagenerated by one or more sensors of the user device 153, such aslocation data for the user device 153 (e.g., generated by locationservices using GPS, cellular, and/or Wi-Fi networks).

In step 407, the computing device 101 and/or the user device 153 maygenerate for display data permissions for using (e.g., sharing) the userdata and/or the data associated with one or more of the availablerouting networks. The generated display may display to the user aplurality of types of data (e.g., location data, transaction data, orother data) that the user may share with third parties. For example, thedisplay may include a toggle or other graphical user interface (GUI)element for each type of data, which the user may select or deselect toindicate whether to share the data. In some aspects, the user device 153may generate the permissions display and display it on a display of theuser device 153, such as via an application installed on the user device153. In some aspects, the computing device 101 may generate thepermissions display and transmit the display to the user device 153. Theuser device 153 may receive the permissions display and display it on adisplay of the user device 153.

In step 409, the computing device 101 may receive, from the user device153, a selection of data permissions. For example, the user may use thetoggles (or other GUI elements) to select whether to permit sharing ofthat particular data or data type with third parties. In some aspects,the user may select an option to permit sharing of all of the user'sdata or data types or an option to prevent sharing any of the user'sdata or data types. The computing device 101 may store the user'sselected permissions in, for example, an internal database (e.g., memory111) or an external database (e.g., in the data storage 141). As aresult, the computing device 101 may provide a user the ability tocontrol access to their data, including financial data, at a granularlevel, rather than having a company setting the terms of data usage.That is, the user may be provided a one-stop shop for the user to be incontrol of his or her own data and permit access to third parties.

In step 411, the computing device 101 may categorize the user dataand/or the data associated with one or more of the available routingnetworks. In some aspects, the data may be categorized by the data type,such as location data, transaction data, balance data, and the like. Insome aspects, the computing device 101 may categorize the data bypermissions, such as data that may be shared with third parties and datathat may not be shared with third parties. In some aspects, the data maybe categorized based on the third parties for which the data may beshared. For example, some of the data, such as balance data and some ofthe transaction data, may be relevant for the user to obtain a mortgage,and the computing device 101 may categorize this data as data to beshared with a mortgage company if requested.

In step 413, the computing device 101 may generate, based on thecategorization, tags for the user data and/or the data associated withone or more of the available routing networks. The tags may indicate thecategorization of the data. For example, a location tag generated for apiece of data may indicate that the piece of data comprises locationdata. A transaction tag generated for a piece of data may indicate thatthe piece of data comprises transaction data. A balance tag generatedfor a piece of data may indicate that the piece of data comprisesaccount balance data. A permission tag generated for a piece of data mayindicate that the piece of data may be shared with third parties. A nopermission tag generated for a piece of data may indicate that the pieceof data may not be shared with third parties. A mortgage tag generatedfor a piece of data may indicate that the piece of data may be sharedwith mortgage companies if the data is requested. Numerous other similartags may be used.

In step 415, the computing device 101 may generate or update blocks ofdata based on the categorization and/or tags. Each block of data maycomprise a group of data having the same (or related) tags. For example,the computing device 101 may generate a block of data for data havingthe location tag. The computing device 101 may generate a block of datafor data having the transaction tag. The computing device 101 maygenerate a block of data for data having the balance tag. The computingdevice 101 may generate a block of data for data having the permissiontag. The computing device 101 may generate a block of data for datahaving the no permission tag. The computing device 101 may generate ablock of data for data having the mortgage tag. The computing device maygenerate a block of data for any other tags.

In step 417, the computing device 101 may store the data and/or theblocks of data in a database, such as an internal database (e.g., memory111) or an external database (e.g., in the data storage 141). As will bedescribed in further detail below, the stored data and/or blocks of datamay be shared with third parties when requested. That is, the computingdevice 101 may store or facilitate storage of a personal data vault forthe user (and other users), and the personal data value may aggregatedata from various data sources, as previously described. The computingdevice 101 may be used as a single hub for data aggregation and/orcontrol of third party access to the user's (and other users' data). Thecomputing device 101 may store the data and/or blocks of data with thecorresponding tag and/or permissions. By storing the data and/or blocksof data with the corresponding tag and/or permissions, the computingdevice 101 may quickly and efficiently retrieve data to be shared, whichimproves the speed and accuracy of the computing device 101 accessingdata from the databases and transmitting the data to third parties. Thespeed and accuracy of accessing and transmitting relevant data may befurther improved by storing and retrieving the data in blocks, insteadof as individual pieces of data.

In step 419, the computing device 101 may determine whether it receiveda request to register the user for a routing network, such as a newrouting network. For example, the user may input, via a user device 153,a request to register for a new account, such as a new credit cardaccount. The request may be transmitted, by the user device 153, to thecomputing device 101. The computing device 101 may receive the requestand determine that the user has requested to register for a new account(step 419: Y). On the other hand, if the computing device 101 has notdetected a request to register for a new account (step 419: N), thecomputing device 101 may proceed to step 421.

In step 421, the computing device 101 may determine whether to otherwisegenerate, for the user, a recommendation for a new routing network evenif the user did not request to register for a new routing network. Ifnot (step 421: N), the method may proceed to step 433, as will bedescribed in further detail below. If the computing device 101determines to generate a recommendation for a new routing network (step421: Y), the method may proceed to step 423.

In step 423, the computing device 101 may retrieve and analyze theuser's existing (or prior) routing networks and data associated withthose existing routing networks. For example, the computing device 101may access the previously-stored data, such as transaction data, balancedata, and the like. In some aspects, the computing device 101 mayanalyze, based on the data associated with the existing routing networksof the user, the user's spending habits and/or the types of accounts theuser has.

In step 425, the computing device 101 may determine the likelihood ofthe user using the new routing network based on the analysis. Thelikelihood of user may be determined relative to other routing networksalready available to the user. For example, the computing device 101 mayanalyze the transaction data to determine, for example, the amount ofspending of the user using a particular account during an openingpromotional period (e.g., 3 months after a credit card is open) to theamount of spending of the user during later time periods. If thedifference between the user's spending during the opening promotionalperiod and the amount of spending during a later time period exceeds athreshold, the computing device 101 may determine a low likelihood (or avalue indicative of a low likelihood) of the user using a new creditcard. Otherwise, the computing device 101 may determine a highlikelihood (or a value indicative of a high likelihood) of the userusing the new credit card. The computing device 101 may also analyze thelength that each account has been open. For example, the computingdevice 101 may determine the length of time that each of the user'scurrent and/or past credit card accounts has been open. The computingdevice 101 may also determine a metric, such as average or median lengthof time. If the length of time (or metric thereof) exceeds a thresholdlength of time, the computing device 101 may determine a high likelihood(or a value indicative of a high likelihood) of the user using the newcredit card. Otherwise, the computing device 101 may determine a lowlikelihood (or a value indicative of a low likelihood) or a mediumlikelihood (or a value indicative of a medium likelihood) of the userusing the new credit card. In some aspects, the new routing network maybe associated with, for example, a server associated with one or more ofthe user's existing routing networks. Alternatively, the new routingnetwork may be associated with, for example, a new server not associatedwith one or more of the user's existing routing networks. The computingdevice 101 may establish a secure communication tunnel with the newserver so that the computing device 101 and the new server may securelycommunicate data regarding the user and/or the new routing network.

In step 427, the computing device 101 may generate, for the user, ascore based on the likelihood of the user using the new routing networkand/or based on one or more other pieces of data. The score may comprisethe value indicative of a low, medium, or high likelihood of the userusing a new routing network. Any other types of scores may be used, suchas on a scale of 1-10 or 1-100. The computing device 101 may also factorin other pieces of data (e.g., factors) to determine the score, such asthe user's credit rating (e.g., based on various factors, such as pastdue payments) and/or top of the wallet factors. If the user has a lowcredit rating, the computing device 101 may decrease the score. If theuser has a high credit rating, the computing device 101 may increase thescore.

In step 429, the computing device 101 may determine whether thegenerated score exceeds a threshold score. If the generated score doesnot exceed the threshold score (step 429: N), the method may proceed tostep 433 (e.g., without recommending or registering the user for the newrouting network). If the generated score exceeds the threshold score(step 429: Y), the method may proceed to step 431.

In step 431, the computing device 101 or the user device 153 maygenerate for display a recommendation for the new routing network. Thedisplay may identify the new routing network (e.g., a new credit card),the benefits of the new routing network (e.g., spending rewards, openingbonuses, product protection, travel protection, and the like), and oneor more options for the user to indicate to register for the new routingnetwork. In some aspects, the computing device 101 may automaticallyregister the user for the new routing network if the user previouslyindicated an interest in registering for the new routing network (e.g.,a preapproval). The generated display may be displayed on a display ofthe user device 153.

In step 433, the computing device 101 may determine whether new activityhas been detected. New activity may comprise a request to use one ormore routing network. For example, the activity may be a new transactionand/or a request for a new transaction. The computing device 101 mayreceive an indication of the new activity from the user device 153, aseller computing device 169, or another computing device. Additionallyor alternatively, the new activity may comprise a request to registerfor a new routing network. If new activity has not been detected (step433: N), the method may return to step 419. If new activity has beendetected (step 433: Y), the method may proceed to step 434 illustratedin FIG. 4B.

Proceeding to FIG. 4B, in step 434, the computing device 101 maydetermine the location of the detected activity. For example, therequest for new activity may include a location of the requestor, suchas the location of the user device 153 if it requested the new activity,the location 161 if the seller computing device 169 requested the newactivity, or the location of another computing device that requested thenew activity. As previously described, the location of the requestingdevice may be based on communications between a wireless sensing device165 or 167 and the requesting device (which may be user device 153)and/or the location of the requesting device determined using locationservices of the requesting device. If the request for new activity doesnot include the location information, the computing device 101 maytransmit a message to the requesting device requesting the location ofthe requesting device.

In step 435, the computing device 101 may receive data associated withone or more routing networks, such as the routing network(s) associatedwith the new activity. For example, the new activity may comprise apurchase requesting use of a particular credit card account. Thecomputing device 101 may access previously-stored data, such astransaction data, balance data, and the like, for the routing network(s)associated with the new activity and/or associated with the user. Insome aspects, the computing device 101 may transmit a request for thedata associated with the one or more routing networks from one or moreservers associated with the one or more routing networks. As will bedescribed in further detail below, the computing device 101 may detectunauthorized use of a routing network by analyzing a plurality ofrouting networks (including the routing network being used or attemptedto use), resulting in a more accurate system for detecting unauthorizeduse of routing networks. For example, the computing device 101 mayanalyze the user's credit and debit card products to detect potentialunauthorized use of a credit card or a debit card.

In step 437, the computing device 101 may determine a score based on aplurality of factors determined from the data associated with the one ormore routing networks. For example, the computing device 101 maydetermine historical spending habits of the user from the dataassociated with the one or more routing networks. The computing device101 may compare the new activity to the user's historical spendinghabits to determine whether the activity appears to be unauthorized. Thecomputing device 101 may also compare the location of the new activityto locations of previous user activities to determine whether the newactivity appears to be unauthorized. The computing device 101 may assigna score to the new activity. In some aspects, higher scores may indicateauthorized activity, whereas lower scores may indicate unauthorizedactivity.

In step 439, the computing device 101 may determine whether the scoreexceeds a threshold score. If the score does not exceed the thresholdscore (step 439: N), the method may proceed to step 445 illustrated inFIG. 4C, which will be described in further detail below. If the scoredoes exceed the threshold score (step 439: Y), the method may proceed tostep 441.

In step 441, the computing device 101 may terminate the activity. Forexample, the computing device 101 may prevent a payment using aparticular account from processing. In particular, a low enough scoremay indicate unauthorized use of the routing network(s), such as if theuser's device 153, credit card, credit card information, or otherinformation has been stolen and has been used by another person.

In step 443, the computing device 101 may send an alert message to auser device 153 and/or seller computing device 169 indicatingtermination of the activity and the potential unauthorized use. Thealert message may indicate that the new activity exceeds a thresholdscore. The computing device 101 may also transmit an alert to the serverassociated with the compromised routing network (e.g., server 121 orserver 131).

Proceeding to FIG. 4C, in step 445, the computing device 101 maydetermine another score (e.g., a risk score) based on data of one ormore of the routing networks. The computing device 101 may accesspreviously-stored data, such as transaction data, balance data, and thelike, for the routing network(s) associated with the new activity and/orassociated with the user. The risk score may indicate the level of riskof the user in connection with one or more of the routing networks andmay be used by the computing device 101 to decide to use a third partyrouting network option, as will be described in further detail below.

In step 447, the computing device 101 may generate a recommendation ofone or more routing networks based on the generated score. The routingnetworks may include payment options, such as credit cards or debitcards, and their associated accounts. For example, if the scoredetermined in step 445 indicates that the user is low risk, thecomputing device 101 may recommend using a credit card and/or a debitcard for the transaction. If the score indicates that the user is highrisk, the computing device 101 may recommend using a debit card, but nota credit card, for the transaction.

In step 449, the computing device 101 may determine whether the numberof recommended routing networks exceeds a threshold. The thresholdnumber may be 0, 1, or more than 1. If the number of recommended routingnetworks exceeds a threshold (step 449: Y), the computing device 101 mayproceed to step 457, as will be described in further detail below. Forexample, if the threshold is 2, and the number of recommended routingnetworks is 3 (e.g., two credit cards and a debit card), the computingdevice 101 may proceed to step 457. If the number of recommended routingnetworks does not exceed the threshold (step 449: N), the computingdevice 101 may proceed to step 451. For example, the threshold may be 2,and the number of recommended routing networks may be 1 (e.g., a singledebit card).

In step 451, the computing device 101 may determine whether the score(e.g., determined in step 445) is less than a threshold score. If thescore is not less than a threshold score (step 451: N), the computingdevice 101 may proceed to step 457. If the score is less than thethreshold score (step 451: Y), the computing device 101 may proceed tostep 453.

In step 453, the computing device 101 may determine one or more thirdparty routing network options, which may be different from the routingnetworks included on the preliminary list of network routing options.For example, the third party routing network option may include a thirdparty automated clearing house (ACH). The ACH routing may use one ormore of the user's existing debit card routing networks. The systemdescribed herein may expand sellers' abilities to accept ACH-basedpayments. This may result in offering sellers a lower-cost alternativeto debit routing, such as by by-passing a card network.

In step 455, the computing device 101 may add the one or more thirdparty routing network options to the list of recommended routingnetworks. For example, the computing device 101 may add the routingnetwork for the third party ACH to the list of recommended routingnetworks. In some aspects, the third party ACH may offer the seller alower cost alternative to routing via a card network (e.g., a debit cardnetwork).

In step 457, the computing device 101 may generate for display the listof recommended routing networks. In some aspects, the list may includethe third party routing network determined in step 453, if applicable.The computing device 101 may send the list of recommended routingnetworks to the seller computing device 169. The computing device 101may also send the score determined for the user.

In step 459, the seller computing device 169 may display, on a displayof the computing device 169, the list of recommended routing networks,which may include the third party routing network, if applicable.

In step 461, the computing device 101 may receive, such as from theseller computing device 169, a selection of one or more routing networkto use for the activity. In some aspects, using the ACH network may beless risky than using another type of routing network, such as a creditcard network. Accordingly, if the score is less than a threshold riskscore, the seller, via an input device of the seller computing device169, may select the ACH network to use for the sale.

In step 463, the computing device 101 may use the selected routingnetwork(s) for the activity. For example, the computing device 101 maycommunicate with the server (e.g., first server 121 or second server131) corresponding to the selected routing network(s) to make thepayment. In some aspects, two or more routing networks may have beenselected, and the computing device 101 may communicate with each of theservers corresponding to the two or more routing networks. If the thirdparty routing network was selected, the computing device 101 maycommunicate with the server corresponding to the third party routingnetwork to make the payment.

In step 465, the computing device 101 may determine whether to add theactivity (or data thereof) to the user's profile, such as into one ofthe blocks of data stored by the computing device 101. For example,transaction data for a sale may be added to one of the blocks of data,and the block of data (including the new transaction data) may betransferred to a third party device in the future and upon request. Ifthe computing device determines not to add the activity to the user'sprofile (step 465: N), the method may return to step 419, as illustratedin FIG. 4A. If the computing device 101 determines to add the activityto the user's profile (step 465: Y), the computing device 101 mayproceed to step 467.

In step 467, the computing device 101 may determine if it has permissionfrom the user to add the activity to the user profile and/or to transmitthe activity data to other parties. If the computing device 101 does nothave permission (step 467: N), the computing device 101 may proceed tostep 407 illustrated in FIG. 4A to obtain permission from the user. Ifthe computing device 101 has permission (step 467: Y), the computingdevice 101 may proceed to step 411 illustrated in FIG. 4A to categorizethe data, generate tags, and/or update the blocks of data with the datafor the new activity.

FIG. 5 illustrates an example of at least a portion of a flow diagramfor generating recommendations for and transmitting data to a thirdparty in which various aspects of the disclosure may be implemented.

In step 505, a data aggregation and computing device 101 may determinewhether it has received a request to share data, such as with a thirdparty. The computing device 101 may determine whether it has receivedthe request from a user, such as via user device 153, or a computingdevice (e.g., server) of the third party. The computing device (e.g.,server) of the third party may be different from the server 121 and/orthe server 131. That is, data from the server 121, the server 131, theuser device 153, or other data associated with the user may be receivedand aggregated by the data aggregation and computing device 101 andshared with third party servers. For example, a third party may comprisea mortgage or other financing company. The third party may comprise afinancial services company, such as a wealth management company. Therequest may identify the data to share, the type of data to share (e.g.,based on categorization or tag), and/or the third party to share thedata with. If the computing device 101 has not received a request toshare data (step 505: N), the computing device 101 may wait to receive arequest to share data. If the computing device 101 receives a request toshare data (step 505: Y), the computing device may proceed to step 507.

In step 507, the computing device 101 may determine whether it haspermission from the user to share the data with the third party. Forexample, the user, via the user device 153, may have previously grantedpermission to share user data and/or data associated with one or morerouting networks (e.g., in steps 407 and 409). The computing device 101may access the user's permissions from an internal database (e.g.,memory 111) of the computing device 101 or an external database (e.g.,in the data storage 141). For example, the computing device 101 maydetermine whether the user previously granted permission to share therequested data and/or the requested data types and whether the userpreviously granted permission to share the data with that particularthird party. If the computing device 101 has permission (step 507: Y),the computing device 101 may proceed to step 513, as will be describedin further detail below. If the computing device 101 does not havepermission to share the data (step 507: N), the computing device 101 mayproceed to step 509 to obtain permission.

In step 509, the computing device 101 and/or the user device 153 maygenerate a display requesting permission to share the data. Thegenerated display may display to the user an indication of the data tobe shared with the third party, the types of data to be shared with thethird party, and/or an identity of the third party. For example, thedisplay may include a toggle or other graphical user interface (GUI)element for each piece of data or type of data, which the user mayselect or deselect to indicate whether to share the data with the thirdparty. In some aspects, the user device 153 may generate the permissionsdisplay and display it on a display of the user device 153, such as viaan application installed on the user device 153. In some aspects, thecomputing device 101 may generate the permissions display and transmitthe display to the user device 153. The user device 153 may receive thepermissions display and display it on a display of the user device 153.

In step 511, the computing device 101 may receive a response from theuser device 153 indicating whether or not to share the data with thethird party. For example, the user may use the toggles (or other GUIelements) to select whether to permit sharing of particular data or datatypes with the third party. The user device 153 may transmit the user'sselections to the computing device 101. The computing device 101 maydetermine, in step 507, whether the response from the user device 153indicates permission to share the data with the third party.

In step 513, the computing device 101 may determine the third party toshare the data with.

In some aspects, the request (e.g., received in step 505) may include anindication of the third party (e.g., a mortgage company), and thecomputing device 101 may determine the third party based on theindication in the request.

In step 515, the computing device 101 may transmit, to the third party,the data to share. In some aspects, the computing device 101 maydetermine which data to share based on information in the request, suchas specific data requested and/or types of data requested (e.g., basedon categorization and/or tags). If the request indicated types ofrequested data, the computing device 101 may access the datacorresponding to the indicated types of data (e.g., mortgage data,location data, transaction data, balance data, or another type of data)and transmit the data to the third party over a secure communicationchannel (e.g., a secure tunnel). In some aspects, the computing device101 may access previously-stored data block(s) corresponding to therequested type(s) of data (e.g., instead of individually identifying thedata to be transmitted) and transmit the data block(s) to the thirdparty computing device. In some aspects, the computing device 101 maydetermine the data to share with the third party based on the identityof the third party, which may have been included in the data request.For example, if the third party is a mortgage company, the computingdevice 101 may determine to transmit the data blocks having tagsidentifying balance data and/or mortgage data.

In step 517, the computing device 101 may generate a recommendation ofother data to share with the third party. The recommendation may bebased on the data requested to be shared with the third party and/or thedata actually shared with the third party. For example, if a third partyrequested data, but the user granted permission for only a portion ofthe requested data, the computing device 101 may generate arecommendation to share the remainder of the requested data, such as bytransmitting a request to the user device 153 identifying the remainingdata and permission to share the remaining data. Additionally oralternatively, the computing device 101 may determine data similar tothe remaining data to share with the third party, but for which the userhas granted permission. For example, the remaining data may be morerecent data (e.g., data from the user's most-recent account statement),but the user might not have yet granted permission to share the morerecent data. Instead, the computing device 101 may determine to shareolder data (e.g., data from the user's previous statement(s)) for whichthe user may have granted permission to share.

In some aspects, the data to be shared may include additional data thethird party may have missed. For example, a third party (e.g., amortgage company) may have requested data or data blocks having themortgage data tag. However, balance data might be relevant to the userobtaining a mortgage. The computing device 101 may generate arecommendation to also share the balance data with the mortgage company(e.g., if the balance data was not already included in the mortgagedata).

In step 519, the computing device 101 may transmit the other data to thethird party. Prior to transmitting the other data to the third party,the computing device 101 may determine whether it has permission toshare the other data (e.g., similar to step 507 described above). Insome aspects, the computing device 101 may transmit the other data withthe data requested by the third party (e.g., in step 515). In themortgage company example, the computing device 101 may provide most(e.g., all) of the data needed for the user to apply for a mortgage froma third party entity. The third party may access the data via anapplication program interface (API).

Various aspects described herein may be embodied as a method, anapparatus, or as computer-executable instructions stored on one or morenon-transitory and/or tangible computer-readable media. Any and/or allof the method steps described herein may be embodied incomputer-executable instructions stored on a computer-readable medium,such as a non-transitory and/or tangible computer readable medium and/ora computer readable storage medium. Additionally or alternatively, anyand/or all of the method steps described herein may be embodied incomputer-readable instructions stored in the memory and/or othernon-transitory and/or tangible storage medium of an apparatus thatincludes one or more processors, such that the apparatus is caused toperform such method steps when the one or more processors execute thecomputer-readable instructions. In addition, various signalsrepresenting data or events as described herein may be transferredbetween a source and a destination in the form of light and/orelectromagnetic waves traveling through signal-conducting media such asmetal wires, optical fibers, and/or wireless transmission media (e.g.,air and/or space).

Aspects of the disclosure have been described in terms of illustrativeembodiments thereof. Numerous other embodiments, modifications, andvariations within the scope and spirit of the appended claims will occurto persons of ordinary skill in the art from a review of thisdisclosure. For example, one of ordinary skill in the art willappreciate that the steps illustrated in the illustrative figures may beperformed in other than the recited order, and that one or more stepsillustrated may be optional in accordance with aspects of thedisclosure.

What is claimed is:
 1. A system comprising: a computing devicecomprising: a processor; and memory storing computer-executableinstructions that, when executed by the processor, cause the computingdevice to: generate a first secure session connection between acomputing device and a first server associated with a first routingnetwork; receive, from the first server and via the first secure sessionconnection, a plurality of pieces of data associated with the firstrouting network; generate a second secure session connection between thecomputing device and a second server associated with a second routingnetwork; receive from the second server, and via the second securesession connection, a plurality of pieces of data associated with thesecond routing network; categorize each of the plurality of pieces ofdata associated with the first routing network and the plurality ofpieces of data associated with the second routing network; generate,based on the categorizing, one or more tags for each of the plurality ofpieces of data associated with the first routing network and theplurality of pieces of data associated with the second routing network;generate, based on the one or more tags, a plurality of blocks of data,wherein each block of data of the plurality of blocks of data comprisesat least a portion of the plurality of pieces of data associated withthe first routing network and the plurality of pieces of data associatedwith the second routing network; store, at a storage device and with oneor more corresponding tags, the plurality of blocks of data; receive arequest to share data with a third party computing device; and inresponse to receiving the request to share data with the third partycomputing device, transmit, to the third party computing device andbased on the one or more corresponding tags, a block of data of theplurality of blocks of data; the first server associated with the firstrouting network configured to: transmit, to the computing device and viathe first secure session connection, the plurality of pieces of dataassociated with the first routing network; and the second serverassociated with the second routing network configured to: transmit, tothe computing device and via the second secure session connection, theplurality of pieces of data associated with the second routing network.2. The system of claim 1, wherein the receiving the request to sharedata comprises receiving, from a user device or from the third partycomputing device, the request to share data.
 3. The system of claim 1,wherein the memory stores computer-executable instructions that, whenexecuted by the processor, cause the computing device to: prior totransmitting the block of data, determine whether the computing devicehas permission to share the block of data with the third party computingdevice, wherein the transmitting the block of data is performed inresponse to determining that the computing device has permission toshare the block of data with the third party computing device.
 4. Thesystem of claim 1, wherein the memory stores computer-executableinstructions that, when executed by the processor, cause the computingdevice to: prior to transmitting the block of data, determine whetherthe computing device has permission to share the block of data with thethird party computing device; in response to determining that thecomputing device does not have permission to share the block of datawith the third party computing device, generate, for display via a userdevice, a notification requesting permission for the computing device toshare the block of data with the third party computing device; andreceive, from the user device, permission for the computing device toshare the block of data with the third party computing device, whereinthe transmitting the block of data is performed in response to receivingthe permission for the computing device to share the block of data withthe third party computing device.
 5. The system of claim 1, wherein thememory stores computer-executable instructions that, when executed bythe processor, cause the computing device to: generate a recommendationfor a second block of data of the plurality of blocks of data to sharewith the third party computing device; and transmit, to the third partycomputing device, the second block of data.
 6. The system of claim 5,wherein the generating the recommendation for the second block of dataof the plurality of blocks of data to share with the third partycomputing device is based on one or more of the block of data or thethird party computing device.
 7. The system of claim 1, wherein thememory stores computer-executable instructions that, when executed bythe processor, cause the computing device to: generate a third securesession connection between the computing device and a user device;receive, from the user device and via the third secure sessionconnection, a plurality of pieces of user data associated with the userdevice; and update one or more of the plurality of blocks of data withat least a portion of the plurality of pieces of user data associatedwith the user device.
 8. A method comprising: generating a first securesession connection between a computing device and a first serverassociated with a first routing network; receiving, by the computingdevice, from the first server, and via the first secure sessionconnection, a plurality of pieces of data associated with the firstrouting network; generating a second secure session connection betweenthe computing device and a second server associated with a secondrouting network; receiving, by the computing device, from the secondserver, and via the second secure session connection, a plurality ofpieces of data associated with the second routing network; categorizing,by the computing device, each of the plurality of pieces of dataassociated with the first routing network and the plurality of pieces ofdata associated with the second routing network; generating, by thecomputing device and based on the categorizing, one or more tags foreach of the plurality of pieces of data associated with the firstrouting network and the plurality of pieces of data associated with thesecond routing network; generating, by the computing device and based onthe one or more tags, a plurality of blocks of data, wherein each blockof data of the plurality of blocks of data comprises at least a portionof the plurality of pieces of data associated with the first routingnetwork and the plurality of pieces of data associated with the secondrouting network; storing, by the computing device, at a storage device,and with one or more corresponding tags, the plurality of blocks ofdata; receiving, by the computing device, a request to share data with athird party computing device; and in response to receiving the requestto share data with the third party computing device, transmitting, bythe computing device, to the third party computing device, and based onthe one or more corresponding tags, a block of data of the plurality ofblocks of data.
 9. The method of claim 8, wherein the receiving therequest to share data comprises receiving, from a user device or fromthe third party computing device, the request to share data.
 10. Themethod of claim 8, further comprising: prior to transmitting the blockof data, determining whether the computing device has permission toshare the block of data with the third party computing device, whereinthe transmitting the block of data is performed in response todetermining that the computing device has permission to share the blockof data with the third party computing device.
 11. The method of claim8, further comprising: prior to transmitting the block of data,determining whether the computing device has permission to share theblock of data with the third party computing device; in response todetermining that the computing device does not have permission to sharethe block of data with the third party computing device, generating, bythe computing device and for display via a user device, a notificationrequesting permission for the computing device to share the block ofdata with the third party computing device; and receiving, by thecomputing device and from the user device, permission for the computingdevice to share the block of data with the third party computing device,wherein the transmitting the block of data is performed in response toreceiving the permission for the computing device to share the block ofdata with the third party computing device.
 12. The method of claim 8,further comprising: generating, by the computing device, arecommendation for a second block of data of the plurality of blocks ofdata to share with the third party computing device; and transmitting,by the computing device and to the third party computing device, thesecond block of data.
 13. The method of claim 12, wherein the generatingthe recommendation for the second block of data of the plurality ofblocks of data to share with the third party computing device is basedon one or more of the block of data or the third party computing device.14. The method of claim 8, further comprising: generating a third securesession connection between the computing device and a user device;receiving, by the computing device, from the user device, and via thethird secure session connection, a plurality of pieces of user dataassociated with the user device; and updating, by the computing device,one or more of the plurality of blocks of data with at least a portionof the plurality of pieces of user data associated with the user device.15. A non-transitory computer readable medium storing instructionsthereon that, when read by a computing device, causes the computingdevice to: generate a first secure session connection between thecomputing device and a first server associated with a first routingnetwork; receive, from the first server and via the first secure sessionconnection, a plurality of pieces of data associated with the firstrouting network; generate a second secure session connection between thecomputing device and a second server associated with a second routingnetwork; receive, from the second server and via the second securesession connection, a plurality of pieces of data associated with thesecond routing network; categorize each of the plurality of pieces ofdata associated with the first routing network and the plurality ofpieces of data associated with the second routing network; generate,based on the categorizing, one or more tags for each of the plurality ofpieces of data associated with the first routing network and theplurality of pieces of data associated with the second routing network;generate, based on the one or more tags, a plurality of blocks of data,wherein each block of data of the plurality of blocks of data comprisesat least a portion of the plurality of pieces of data associated withthe first routing network and the plurality of pieces of data associatedwith the second routing network; store, at a storage device and with oneor more corresponding tags, the plurality of blocks of data; receive arequest to share data with a third party computing device; and inresponse to receiving the request to share data with the third partycomputing device, transmit, to the third party computing device andbased on the one or more corresponding tags, a block of data of theplurality of blocks of data.
 16. The non-transitory computer readablemedium of claim 15, wherein the receiving the request to share datacomprises receiving, from a user device or from the third partycomputing device, the request to share data.
 17. The non-transitorycomputer readable medium of claim 15, storing instructions thereon that,when read by the computing device, causes the computing device to: priorto transmitting the block of data, determine whether the computingdevice has permission to share the block of data with the third partycomputing device, wherein the transmitting the block of data isperformed in response to determining that the computing device haspermission to share the block of data with the third party computingdevice.
 18. The non-transitory computer readable medium of claim 15,storing instructions thereon that, when read by the computing device,causes the computing device to: prior to transmitting the block of data,determine whether the computing device has permission to share the blockof data with the third party computing device; in response todetermining that the computing device does not have permission to sharethe block of data with the third party computing device, generate, fordisplay via a user device, a notification requesting permission for thecomputing device to share the block of data with the third partycomputing device; and receive, from the user device, permission for thecomputing device to share the block of data with the third partycomputing device, wherein the transmitting the block of data isperformed in response to receiving the permission for the computingdevice to share the block of data with the third party computing device.19. The non-transitory computer readable medium of claim 15, storinginstructions thereon that, when read by the computing device, causes thecomputing device to: generate a recommendation for a second block ofdata of the plurality of blocks of data to share with the third partycomputing device; and transmit, to the third party computing device, thesecond block of data.
 20. The non-transitory computer readable medium ofclaim 19, wherein the generating the recommendation for the second blockof data of the plurality of blocks of data to share with the third partycomputing device is based on one or more of the block of data or thethird party computing device.